import Vue from 'vue';
import { LoadingPlugin } from 'vux';
import qs from 'qs';
Vue.use(LoadingPlugin);
// 獲取用戶信息
export const getUserInfo = function () {
  let userInfoStr = sessionStorage.getItem('userInfo');
  return JSON.parse(userInfoStr);
};
// 寫入用戶信息
export const setUserInfo = async function (that, callback) {
  let postData = qs.stringify({
    code: getParams('code')
  });
  // 正式环境用这里
  // return this.axios.post(`/Wechat/GetUser?${postData}`)
  // .then((res) => {
  //   this.$vux.loading.hide();
  //   if (res.data.IsSuccess) {
  //     let userInfo = res.data.data;
  //     sessionStorage.setItem('userInfo', JSON.stringify(userInfo));
  //     callback(that)
  //     if (res.data.data == null) {
  //       alert('企业微信登陆接口报错');
  //       that.errorShow = true;
  //     }
  //   } else {
  //     this.$vux.loading.hide();
  //     alert(`微信授权登陆失败，错误信息：${res.data.ExMessage}`);
  //     that.errorShow = true;
  //   }
  // })
  // .catch((err) => {
  //   this.$vux.loading.hide();
  //   alert(`微信授权登陆失败，错误信息：${err}`);
  //   that.errorShow = true;
  // });

  // 本地調試;
  // 1611362 Jack   1902783 Marco   1888888 testuser   1902784 Coffee  何董 10034  羅俊民 10258
  // let userInfo = {
  //   StaffNo: '2005113',
  //   IsBusiness: 'N',
  //   Verify: false
  // };

  // S 是前线 N 是后勤
  // Tiffany
  // let userInfo = {
  //   StaffNo: '11401',
  //   IsBusiness: 'N',
  //   Verify: false
  // };

  // let userInfo = {
  //   StaffNo: '2003028',
  //   IsBusiness: 'N',
  //   Verify: false
  // };
  // let userInfo = {
  //   StaffNo: '1604162',
  //   IsBusiness: 'N',
  //   Verify: false
  // };
  // let userInfo = {
  //   StaffNo: '11398',
  //   IsBusiness: 'N',
  //   Verify: false
  // };

  // let userInfo = {
  //   StaffNo: '1911926',
  //   IsBusiness: 'N',
  //   Verify: false
  // };
  // let userInfo = {
  //   StaffNo: '11398',
  //   IsBusiness: 'S',
  //   Verify: false
  // };

  // 华
  // let userInfo = {
  //   StaffNo: '1608260',
  //   IsBusiness: 'S',
  //   Verify: false
  // };
  // 黎雪琴
  // let userInfo = {
  //   StaffNo: '11380',
  //   IsBusiness: 'N',
  //   Verify: false
  // };
  // 測試號
  // let userInfo = {
  //   StaffNo: '1888888',
  //   IsBusiness: 'N',
  //   Verify: false
  // };
  // 測試號
  // let userInfo = {
  //   StaffNo: '6666888',
  //   IsBusiness: 'N',
  //   Verify: false
  // };
  // 謝美菁
  // let userInfo = {
  //   StaffNo: '11554',
  //   IsBusiness: 'N',
  //   Verify: false
  // };

  //  伍詠姿
  // let userInfo = {
  //   StaffNo: '11517',
  //   IsBusiness: 'N',
  //   Verify: false
  // };
  // let userInfo = {
  //   StaffNo: '11446',
  //   IsBusiness: 'N',
  //   Verify: false
  // };
  // 劉安琪 Agnes Lao
  // let userInfo = {
  //   StaffNo: '11517',
  //   IsBusiness: 'N',
  //   Verify: false
  // };

 // 黎偉杰 Adam Lai
  // let userInfo = {
  //   StaffNo: '10829',
  //   IsBusiness: 'N',
  //   Verify: false
  // };

  // 李肇成
  // let userInfo = {
  //   StaffNo: '10463',
  //   IsBusiness: 'N',
  //   Verify: false
  // };

  // 石寳德
  // let userInfo = {
  //   StaffNo: '10026',
  //   IsBusiness: 'N',
  //   Verify: false
  // };

  // 程淑涵
  // let userInfo = {
  //   StaffNo: '1902784',
  //   IsBusiness: 'N',
  //   Verify: false
  // };
  // 陈帅奇
  // let userInfo = {
  //   StaffNo: '2003040',
  //   IsBusiness: 'N',
  //   Verify: false
  // };

  // 最終審批人
  // let userInfo = {
  //   StaffNo: '11380',
  //   IsBusiness: 'N',
  //   Verify: true
  // };

  // 高级物业顾问
  // 梁华迎 Wisdom
  // let userInfo = {
  //   StaffNo: '2003030',
  //   IsBusiness: 'S',
  //   Verify: false
  // };

  // 客户经理
  // 李志达 Brian
  // let userInfo = {
  //   StaffNo: '1912955',
  //   IsBusiness: 'S',
  //   Verify: false
  // };
  // 高级销售经理
  // 陈俊文 Javen
  let userInfo = {
    StaffNo: '1604166',
    IsBusiness: 'S',
    Verify: false
  };
  // 林海明
  // let userInfo = {
  //   StaffNo: '1603157',
  //   IsBusiness: 'S',
  //   Verify: false
  // };
  // 区域经理
  // 李煜 Neo
  // let userInfo = {
  //   StaffNo: '1506004',
  //   IsBusiness: 'S',
  //   Verify: false
  // };

  // 蒋淑婷
  // let userInfo = {
  //   StaffNo: '1703487',
  //   IsBusiness: 'S',
  //   Verify: false
  // };
  // 何兆恆
  // let userInfo = {
  //   StaffNo: '10034',
  //   IsBusiness: 'N',
  //   Verify: false
  // };
  // 人事部
  // 卢超泳Yuki
  // let userInfo = {
  //   StaffNo: '1607245',
  //   IsBusiness: 'N',
  //   Verify: false
  // };

  this.$vux.loading.hide();
  sessionStorage.setItem('userInfo', JSON.stringify(userInfo));
  callback(that);
};
// 將請假類型key value存入緩存 方便讀取
export const setTypeKeyValue = function () {
  this.axios.post('/SystemCode/Query', qs.stringify({
    data: {
      ItemName: 'Level'
    }
  }))
  .then((res) => {
    localStorage.setItem('askLeaveTypeKeyValue', JSON.stringify(res.data.data));
  });
};
// 獲取請假類型key value
export const getTypeKeyValue = function () {
  return JSON.parse(localStorage.getItem('askLeaveTypeKeyValue'));
};
export const getTypeKeyValueFromKeyId = function (keyId) {
  let typeKeyValue = getTypeKeyValue();
  let res = {};
  typeKeyValue.forEach(function (item) {
    if (item.KeyId === keyId) {
      res = item;
      return false;
    }
  });
  if (res !== undefined) {
    return res;
  }
  return false;
};
// 滑动到顶部动画
export const scrollTo = function (element, to, duration) {
  if (duration <= 0) {
    return;
  }
  let difference = to - element.scrollTop;
  let perTick = difference / duration * 10;
  setTimeout(function () {
    element.scrollTop = element.scrollTop + perTick;
    if (element.scrollTop === to) {
      return;
    };
    scrollTo(element, to, duration - 10);
  }, 10);
};
// 获取参数函数
function getParams (paramsName) {
  let paramsStr = location.search;
  // paramsStr = "?code=P861dMaBf_94a4NBwVGO8Rm7msMvfDvz1I-HybBmzrQ&state=STATE"
  let paramsArr = paramsStr.replace('?', '').split('&');
  for (let i = 0; i < paramsArr.length; i++) {
    let item = paramsArr[i];
    let searchIndex = item.indexOf(paramsName);
    if (searchIndex !== -1 && item[searchIndex + paramsName.length] === '=') {
      return item.split('=')[1];
    }
  }
};
// 获取请求路径
export const getRequestUrl = function () {
  // localhost 本地調試C#用這裡
  // const requestUrl = 'http://localhost:56776/api';
  // const requestUrl = 'http://localhost:56776/api';
  // this.axios.defaults.baseURL = requestUrl;
  // localStorage.setItem('requestUrl', requestUrl);
  // return Promise.resolve(requestUrl);
  // 2.9 测试服务器路径
  // const requestUrl = 'http://10.68.2.9/Process/api/SystemCode/Query';

  // const requestUrl = 'http://10.68.2.9/processApi/api';
  // const requestUrl = 'http://mo.centanet.com/ProcessApi/api/SystemCode/Query';
  // const requestUrl = 'https://hq.centaline.com.cn/ProcessTest/api';
  const requestUrl = 'http://10.68.2.9/HQProcessApi/api';
  this.axios.defaults.baseURL = requestUrl;
  localStorage.setItem('requestUrl', requestUrl);

  // 正式服务器 上线用这里
  // const requestUrl = 'http://mo.centanet.com/ProcessApi/api/SystemCode/Query';
  // const requestUrl = 'https://hq.centaline.com.cn/ProcessApi/api/SystemCode/Query';
  // const requestUrl = 'http://10.68.2.9/HQProcessApi/api/SystemCode/Query';
  // const requestUrl = 'http://hq.centaline.com.cn/ProcessTest/api/SystemCode/Query';
  // const requestUrl = 'http://hq.centaline.com.cn/HqProcessApi/api/SystemCode/Query';
  const postData = {
    data: {
      ItemName: 'RequestUrl'
    }
  };
  // console.log(qs.stringify(postData)) // data%5BItemName%5D=RequestUrl
  return this.axios.post(requestUrl, qs.stringify(postData))
  .then((res) => {
    this.axios.defaults.baseURL = res.data.data[0].ItemCode;
    localStorage.setItem('requestUrl', res.data.data[0].ItemCode);
  })
  .catch((err) => {
    console.log('网络链接失败，请联系网络管理员:' + err);
  });
};
